const path = require('path')
const webpack = require('webpack')
function resolve (dir) {
  return path.join(__dirname, dir)
}

module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/', // 部署开发环境和生产环境

  // 根目录
  // baseUrl: './',vue3.3之后就弃用了baseUrl

  // 输出目录
  outputDir: 'dist',

  // 静态资源
  assetsDir: 'assets',

  // Eslint是否开启
  lintOnSave: false,
  // 如果你想要在生产构建时禁用 eslint-loader，你可以用如下配置
  // lintOnSave: process.env.NODE_ENV !== 'production',

  configureWebpack: {
    plugins: [ // 引入jquery package.json中的env也要改
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'windows.jQuery': 'jquery'
      })
    ],
    devServer: {
      open: false, // 浏览器自动打开
      host: 'localhost', // 主机名
      port: 8080, // 端口号
      clientLogLevel: 'none', // console显示的调试信息 当使用inline mode，devTools的命令行中将会显示一些调试信息，
      https: false,
      hotOnly: false, // 热更新
      proxy: { // 配置跨域
        '/api': {
          target: 'http://localhost:3000',
          ws: true,
          changeOrigin: true,
          pathRewrite: {
            '^/api': ''
          }
        }
      },
      before (app) { // mock接口
        // 编写注册接口
        let userpoor = [ // 注册池
          { username: 'wangkun', password: '123456' },
          { username: 'xiaolong', password: '123456' }
        ]
        app.get('/api/register', (req, res) => {
          const { username, password } = req.query
          const userlength = userpoor.filter(v => v.username === username).length // 过滤
          if (userlength > 0) {
            res.json({
              success: false,
              message: '用户名已存在'
            })
          } else {
            res.json({
              success: true,
              message: '注册成功'
            })
          }
        })
        // 编写登陆接口
        const tokenkey = 'xiaokun'
        app.get('/api/login', (req, res) => {
          const { username, password } = req.query
          if (username === 'wangkun' && password === '123456' || username === 'xiaolong' && password === '123456') {
            res.json({
              code: 0,
              message: '登陆成功',
              token: tokenkey + '-' + username + '-' + (new Date().getTime() + 60 * 60 * 1000)
            })
          } else {
            res.json({
              code: 1,
              message: '账号或密码错误'
            })
          }
        })
      }
    }
  },

  chainWebpack: (config) => {
  // 修改文件引入自定义路径
    config.resolve.alias
      .set('@', resolve('src'))
      .set('style', resolve('src/images'))
  },

  pluginOptions: {
    'cube-ui': {
      postCompile: true,
      theme: true
    }
  },

  css: {
    loaderOptions: {
      stylus: {
        'resolve url': true,
        'import': [
          './src/theme'
        ]
      }
    }
  }
}
